package com.tjec.project.projectWorkbench.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.tjec.framework.aspectj.lang.annotation.Excel;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.tjec.framework.web.domain.BaseEntity;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

/**
 * 项目成员变更历史对象 bms_project_member_history
 * 
 * @author tjec
 * @date 2020-04-13
 */
public class BmsProjectMemberHistory extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** id 主键 */
    @JsonIgnore
    private String id;

    /** 项目ID 项目ID */
    private String projectId;

    /** 用户ID 用户ID */
    private String userId;

    /** 项目负责人ID */
    private String projectLeader;

    /** 角色(0项目经理，1项目成员) */
    private String role;

    /** 工作内容 */
    private String workContent;

    /** 工作量 */
    private Integer workload;

    /** 姓名 */
    private String nickName;

    /** 手机号码 */
    private String phonenumber;

    /** 用户邮箱 */
    private String email;

    /** 员工编码 */
    private String jobNo;

    /** 项目名称 项目名称 */
    @Excel(name = "项目名称")
    private String projectName;

    /** 项目代码 项目代码 */
    @Excel(name = "项目代码")
    private String projectCode;

    /** 项目状态 */
    @Excel(name = "项目状态")
    private String projectStatus;

    /** 项目负责人姓名*/
    @Excel(name = "项目负责人")
    private String projectLeaderName;

    /** 是否为当前项目组成员 */
    @Excel(name = "是否为当前项目组成员")
    private String projectMemberFlag;

    /** 参与时间 */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "进入项目组时间", width = 30 ,  dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date joinTime;

    /** 离开项目组时间 */
    @Excel(name = "离开项目组时间", width = 30 ,  dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date leaveTime;

    /** UUID  */
    private String guid;

    public String getGuid() {
        return guid;
    }

    public void setGuid(String guid) {
        this.guid = guid;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getProjectId() {
        return projectId;
    }

    public void setProjectId(String projectId) {
        this.projectId = projectId;
    }

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public String getProjectLeader() {
        return projectLeader;
    }

    public void setProjectLeader(String projectLeader) {
        this.projectLeader = projectLeader;
    }

    public String getRole() {
        return role;
    }

    public void setRole(String role) {
        this.role = role;
    }

    public Date getJoinTime() {
        return joinTime;
    }

    public void setJoinTime(Date joinTime) {
        this.joinTime = joinTime;
    }

    public String getWorkContent() {
        return workContent;
    }

    public void setWorkContent(String workContent) {
        this.workContent = workContent;
    }

    public Integer getWorkload() {
        return workload;
    }

    public void setWorkload(Integer workload) {
        this.workload = workload;
    }

    public String getNickName() {
        return nickName;
    }

    public void setNickName(String nickName) {
        this.nickName = nickName;
    }

    public String getPhonenumber() {
        return phonenumber;
    }

    public void setPhonenumber(String phonenumber) {
        this.phonenumber = phonenumber;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getJobNo() {
        return jobNo;
    }

    public void setJobNo(String jobNo) {
        this.jobNo = jobNo;
    }

    public String getProjectLeaderName() {
        return projectLeaderName;
    }

    public void setProjectLeaderName(String projectLeaderName) {
        this.projectLeaderName = projectLeaderName;
    }

    public String getProjectCode() {
        return projectCode;
    }

    public void setProjectCode(String projectCode) {
        this.projectCode = projectCode;
    }

    public String getProjectName() {
        return projectName;
    }

    public void setProjectName(String projectName) {
        this.projectName = projectName;
    }

    public String getProjectStatus() {
        return projectStatus;
    }

    public void setProjectStatus(String projectStatus) {
        this.projectStatus = projectStatus;
    }

    public String isProjectMemberFlag() {
        return projectMemberFlag;
    }

    public void setProjectMemberFlag(String projectMemberFlag) {
        this.projectMemberFlag = projectMemberFlag;
    }

    public Date getLeaveTime() {
        return leaveTime;
    }

    public void setLeaveTime(Date leaveTime) {
        this.leaveTime = leaveTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("projectId", getProjectId())
            .append("userId", getUserId())
            .append("remark", getRemark())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("projectLeader", getProjectLeader())
            .append("role", getRole())
            .append("joinTime", getJoinTime())
            .append("workContent", getWorkContent())
            .append("workload", getWorkload())
            .toString();
    }
}
